//用户信息相关的vuex的js
export default {
  namespaced: true,
  //刷新以后数据会没有
  //通常情况下结合H5缓存 session/local Storage
  //vue-persist
  state: {
    //表示用户是否登陆
    isLogin: sessionStorage.getItem("isLogin") || false,
    //登陆后展示为用户的手机号/姓名
    username: sessionStorage.getItem("username") || "",
  },
  mutations: {
    //登陆
    login(state) {
      //不仅vuex的要修改，session也要
      state.isLogin = true;   //登录状态 为 true
      sessionStorage.setItem("isLogin", true);
    },
    //退出登陆
    logout(state) {
      state.isLogin = false;   //退出登录状态 为 false
      // sessionStorage.setItem("isLogin", false);
      sessionStorage.clear();  //退出登录后 清除掉本地存储的信息
    },
    //设置用户名
    setUserName(state, username) {
      state.username = username;
      sessionStorage.setItem("username", username);   //与用户名变更相关
    },
  },
  actions: {
    //第一个参数 context
    login({ commit }, username) {
      setTimeout(() => {
        commit("login");
        commit("setUserName", username);
      }, 1000);
    },
  },
  getters: {
    welcome: (state) => state.username + "欢迎你~",
  },
};
